fishbowl: Fix the lock button
authorMatthias Clasen <mclasen@redhat.com>
Fri, 24 May 2019 00:11:23 +0000 (00:11 +0000)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 24 May 2019 00:13:03 +0000 (00:13 +0000)
demos/gtk-demo/fishbowl.c
demos/gtk-demo/fishbowl.ui

index 0f926c8fd15bf5d3a41ae185d3ce832f101585c1..d2f0c399a7d281d85f53222cd7bd37a207620f53 100644 (file)
@@ -234,6 +234,15 @@ prev_button_clicked_cb (GtkButton *source,
   set_widget_type (fishbowl, new_index);
 }
 
+void
+changes_toggled_cb (GtkToggleButton *button,
+                    gpointer         user_data)
+{
+  if (gtk_toggle_button_get_active (button))
+    gtk_button_set_icon_name (GTK_BUTTON (button), "changes-prevent");
+  else
+    gtk_button_set_icon_name (GTK_BUTTON (button), "changes-allow");
+}
 
 GtkWidget *
 do_fishbowl (GtkWidget *do_widget)
@@ -261,6 +270,7 @@ do_fishbowl (GtkWidget *do_widget)
       gtk_builder_add_callback_symbols (builder,
                                         "next_button_clicked_cb", G_CALLBACK (next_button_clicked_cb),
                                         "prev_button_clicked_cb", G_CALLBACK (prev_button_clicked_cb),
+                                        "changes_toggled_cb", G_CALLBACK (changes_toggled_cb),
                                         NULL);
       gtk_builder_connect_signals (builder, NULL);
       window = GTK_WIDGET (gtk_builder_get_object (builder, "window"));
index 34136b294665528d668c4795ded54ee00725a239..5d09b3477a374062e423fddf4fa3cedada635ff3 100644 (file)
@@ -2,6 +2,8 @@
 <interface>
   <object class="GtkWindow" id="window">
     <property name="title" translatable="yes">Fishbowl</property>
+    <property name="default-width">400</property>
+    <property name="default-height">400</property>
     <child type="titlebar">
       <object class="GtkHeaderBar" id="">
         <property name="show-title-buttons">1</property>
         </child>
         <child type="end">
           <object class="GtkToggleButton" id="changes_allow">
-            <property name="visible" bind-source="changes_allow" bind-property="active" bind-flags="invert-boolean"/>
             <property name="icon-name">changes-allow</property>
             <property name="relief">none</property>
-          </object>
-        </child>
-        <child type="end">
-          <object class="GtkToggleButton" id="changes_prevent">
-            <property name="active" bind-source="changes_allow" bind-property="active" bind-flags="bidirectional|invert-boolean"/>
-            <property name="visible" bind-source="changes_prevent" bind-property="active" bind-flags="invert-boolean"/>
-            <property name="icon-name">changes-prevent</property>
-            <property name="relief">none</property>
+            <signal name="notify::active" handler="changes_toggled_cb"/>
           </object>
         </child>
       </object>
@@ -65,7 +59,7 @@
       <object class="GtkFishbowl" id="bowl">
         <property name="visible">True</property>
         <property name="animating">True</property>
-        <property name="benchmark" bind-source="changes_allow" bind-property="active" bind-flags="invert-boolean"/>
+        <property name="benchmark" bind-source="changes_allow" bind-property="active" bind-flags="invert-boolean | sync-create"/>
       </object>
     </child>
   </object>